/*-----------------------------------------------------------

@AVATAR
jquery 滑动固定插件

A开头的一般指jquery对象
o开头的为函数内变量

复制本元素 去除class id 属性 仅保留 宽度 高度 浮动属性
当元素要固定时 元素脱离文档流 定位为fixed
同时用复制的元素 填塞原位置

使用方法
  <div class='hello'>
  </div>
  
  $('.hello').fix();
---------------------------极其华丽的分割线----------------*/


(function(AVA) {
   AVA.fn.fix=function(options){
   
   var opts = AVA.extend({}, AVA.fn.fix.defaults, options);//获得参数
  
   return this.each(function(){
   
        var AVAwindow=AVA(window);
	    var Athis=AVA(this);                    //获取本元素
        var oheight=Athis.height();             //获取高度
		var owidth=Athis.width();               //获取宽度
        var otop=Athis.offset().top-opts.top;   //获得元素距离页面顶端高度多少时固定
        var ofloat=Athis.css('float');          //获取元素的浮动属性
        //var oleft=Athis.offset().left;        //获取元素距离页面左边的坐标

        /*-------------------------
         克隆元素 去除 clss id
         仅保留 width height float
         ------------------------*/
        var oclone=Athis.clone();
            oclone.html('');
            oclone.removeAttr('class');
            oclone.removeAttr('id');
            oclone.css({
                 width:Athis.outerWidth(),
                 height:Athis.outerHeight(),
                 padding:'0',
                 margin:'0',
                 border:'none',
                 float:ofloat
            });
            oclone.hide();
            oclone.insertAfter(Athis);

        /*---------------------------
          当滚动到需要固定的高度时
          脱离文档流css为fixed
          复制元素代替原位置避免原文档布局破坏
         --------------------------*/
        var oload=false;                        //状态值 判定是否开启固定效果
		function ofixed(){
						var oscrolltop=AVAwindow.scrollTop();
						if(oscrolltop>otop && oload==false){
                            oclone.show();
							Athis.css(
							{position:'fixed',
							 top:'0px',
							 width:owidth,
							 height:oheight
                             //left:oleft+'px',
							}
							);
							oload=true;
							}
						if(oscrolltop<=otop && oload==true){
							Athis.removeAttr('style');
                            oclone.hide();
                            oload=false;
							}
		}

        /*注册事件*/
		AVAwindow.scroll(ofixed);
        });   
  }
  //设定预设值
  AVA.fn.fix.defaults={
      top:0   //当元素距离页面顶部多少时就开始固定
  }
})(jQuery);